package com.flydog.mall.repository.pms;

import com.flydog.mall.entity.pms.PmsProductCategory;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import java.util.List;

/**
 * @author Cao
 * @description 商品类别
 * @create 2021-03-27
 */
public interface PmsProductCategoryRepository extends JpaRepository<PmsProductCategory, Long> {
    /**
     * 修改显示状态
     *
     * @param id         分类ID
     * @param showStatus 显示状态
     */
    @Modifying
    @Query("update PmsProductCategory cate set cate.showStatus = ?2 where cate.id = ?1")
    void updateShowStatus(Long id, Integer showStatus);

    /**
     * 修改导航状态
     *
     * @param id        分类ID
     * @param navStatus 导航状态
     */
    @Modifying
    @Query("update PmsProductCategory cate set cate.navStatus = ?2 where cate.id = ?1")
    void updateNavStatus(Long id, Integer navStatus);

    /**
     * 删除父分类下的子分类
     * @param parentId 父分类ID
     */
    @Modifying
    @Query("delete from PmsProductCategory cate where cate.parentId = ?1")
    void deleteByParentId(Long parentId);

    /**
     * 分页获取父分类下的分类数据
     *
     * @param parenId 父分类ID
     * @param page    分页信息
     * @return 分类信息
     */
    Page<PmsProductCategory> findByParentId(Long parenId, Pageable page);


    /**
     * 获取父分类下的分类数据
     *
     * @param parenId 父分类ID
     * @return 分类信息
     */
    List<PmsProductCategory> findByParentId(Long parenId);
}
